<?php
/**
 * 备忘录管理类
 * 2019年12月30日17:48:33
 */
namespace Application\Common\Memento\Memento;

class Manager
{
    // 备忘录对象
    protected $memento;
    // 被备忘对象
    protected $bememento;
    // 构造方法
    public function __construct(&$bememento = null)
    {
        $this -> memento = new Memento();
        $this -> bememento = $bememento;
    }
    // 保存进度 $attribute=属性
    public function setMemento($key = null)
    {
        if(empty($this -> bememento) || empty($key)){
            return false;
        }
        $get_attribute = 'get'.ucfirst($key);
        $this -> memento -> setSaveAttribute($key,$this -> bememento -> $get_attribute($key));
        return true;
    }
    // 恢复进度
    public function getMemento($key = null)
    {
        if(empty($this -> bememento) || empty($key)){
            return false;
        }
        $set_attribute = 'set'.ucfirst($key);
        $this -> bememento -> $set_attribute($this -> memento -> getSaveAttribute($key));
        return true;
    }
}
